/*
  学习目标：Switch组件 / 404  / 重定向的使用
*/

import React from 'react';
import { BrowserRouter as Router, NavLink, Redirect, Route, Switch } from 'react-router-dom';
import './base.css';

export default class App extends React.Component {
  render() {
    return (
      <Router>
        <div>
          <h1>app组件</h1>
          <NavLink activeClassName="xxx" to="/home">
            首页
          </NavLink>
          <br />
          <NavLink activeClassName="xxx" to="/my">
            我的音乐
          </NavLink>
          <br />
          <NavLink activeClassName="xxx" to="/friend" exact>
            朋友
          </NavLink>
          <Switch>
            {/* 3. 重定向: 一般放在Switch中的第一个, 一般要加上exact */}
            <Redirect from="/" to="/home" exact />
            {/* 1. Switch要包住所有的Route组件, 一旦匹配到Route, 停止向下匹配 */}
            <Route path="/home" component={Home} />
            <Route path="/home" component={Home} />
            <Route path="/home" component={Home} />
            <Route path="/home" component={Home} />
            <Route path="/my" component={MyMusic} />
            <Route path="/friend" component={Friend} />

            {/* 2. 404页面, 一般放在Switch中的最后一个, 不写path, 表示兜底 */}
            <Route component={NotFound} />
          </Switch>
        </div>
      </Router>
    );
  }
}

function NotFound() {
  return <h1>404</h1>;
}

function Home() {
  return <h1>我是首页组件</h1>;
}

function MyMusic() {
  return <h1>我是我的音乐件</h1>;
}

function Friend() {
  return <h1>我是朋友组件</h1>;
}
